interface IStudent{
    name:string;
    age :number;
    id:string
}

type stu_name_type= Exclude<keyof IStudent,"age"|"id">;
type stu_name_type2= Extract<keyof IStudent,"name">;

type stu=Omit<IStudent,"age"|"id">;
type stu2=Pick<IStudent,"name">;


interface IStudent2 extends IStudent{
    name2:string;
}

// type Extract<T, U> = T extends U ? T : never;
type stu_type3=Extract<IStudent2,IStudent>;